package packVistas;



import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

import com.jgoodies.forms.layout.FormLayout;
import com.jgoodies.forms.layout.ColumnSpec;
import com.jgoodies.forms.layout.RowSpec;

import javax.swing.JTable;
import javax.swing.JLabel;
import javax.swing.JTextField;

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.table.DefaultTableModel;

import packLigaDeFutbol.GestorEquipos;
import packLigaDeFutbol.GestorJugadores;
import packLigaDeFutbol.UtilControles;

import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;
import java.awt.Insets;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.SwingConstants;

public class GestionarJugadores extends JDialog {

	private final JPanel contentPanel = new JPanel();
	private JTable table;
	private JTextField tNombre;
	private JTextField tDorsal;
	private JButton bEliminar, bAnadir, bModificar, bCerrar;
	private int idEquipo;

	/**
	 * Launch the application.
	 */
	

	/**
	 * Create the dialog.
	 */
	public GestionarJugadores(int pIdEquipo) {
		setModal(true);
		this.idEquipo = pIdEquipo;
		setTitle("Gestionar Jugadores");
		setBounds(100, 100, 450, 300);
		getContentPane().setLayout(new FormLayout(new ColumnSpec[] {
				ColumnSpec.decode("442px"),},
			new RowSpec[] {
				RowSpec.decode("240px"),
				RowSpec.decode("33px"),}));
		contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
		getContentPane().add(contentPanel, "1, 1, fill, fill");
		GridBagLayout gbl_contentPanel = new GridBagLayout();
		gbl_contentPanel.columnWidths = new int[]{165, 49, 114, 74, 0};
		gbl_contentPanel.rowHeights = new int[]{42, 21, 63, 27, 27, 0};
		gbl_contentPanel.columnWeights = new double[]{0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE};
		gbl_contentPanel.rowWeights = new double[]{0.0, 0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE};
		contentPanel.setLayout(gbl_contentPanel);
		{
			table = new JTable();
			table.setModel(new DefaultTableModel(
				new Object[][] {
				},
				new String[] {
					"Nombre", "Dorsal"
				}
			));
			GestorEquipos ge = GestorEquipos.getGestorEquipos();
			UtilControles.cargarTabla(table, ge.jugadoresEquipo(idEquipo));
			table.addMouseListener(new MouseAdapter() {
				@Override
				public void mouseClicked(MouseEvent arg0) {
					bEliminar.setEnabled(true);
					bModificar.setEnabled(true);
					//No se sacar elemtos de la tabla
					tNombre.setText(table.getModel().getValueAt(table.getSelectedRow(), 1).toString());
					tDorsal.setText(table.getModel().getValueAt(table.getSelectedRow(), 2).toString());
				}
			});
		}
		GridBagConstraints gbc_table = new GridBagConstraints();
		gbc_table.fill = GridBagConstraints.BOTH;
		gbc_table.insets = new Insets(0, 0, 0, 5);
		gbc_table.gridheight = 5;
		gbc_table.gridx = 0;
		gbc_table.gridy = 0;
		contentPanel.add(table, gbc_table);
		
		JLabel lblNombre = new JLabel("Nombre");
		GridBagConstraints gbc_lblNombre = new GridBagConstraints();
		gbc_lblNombre.anchor = GridBagConstraints.SOUTHWEST;
		gbc_lblNombre.insets = new Insets(0, 0, 5, 5);
		gbc_lblNombre.gridx = 1;
		gbc_lblNombre.gridy = 0;
		contentPanel.add(lblNombre, gbc_lblNombre);
		
		tNombre = new JTextField();
		tNombre.setHorizontalAlignment(SwingConstants.LEFT);
		tNombre.setColumns(10);
		GridBagConstraints gbc_tNombre = new GridBagConstraints();
		gbc_tNombre.fill = GridBagConstraints.HORIZONTAL;
		gbc_tNombre.anchor = GridBagConstraints.SOUTH;
		gbc_tNombre.insets = new Insets(0, 0, 5, 5);
		gbc_tNombre.gridx = 2;
		gbc_tNombre.gridy = 0;
		contentPanel.add(tNombre, gbc_tNombre);
		
		JLabel lblDorsal = new JLabel("Dorsal");
		GridBagConstraints gbc_lblDorsal = new GridBagConstraints();
		gbc_lblDorsal.anchor = GridBagConstraints.EAST;
		gbc_lblDorsal.insets = new Insets(0, 0, 5, 5);
		gbc_lblDorsal.gridx = 1;
		gbc_lblDorsal.gridy = 1;
		contentPanel.add(lblDorsal, gbc_lblDorsal);
		
		tDorsal = new JTextField();
		tDorsal.addKeyListener(new KeyAdapter() {
			@Override
			public void keyPressed(KeyEvent e) {
				if(tNombre.getText() != "" && tDorsal.getText() != ""){
					bAnadir.setEnabled(true);
				}
			}
		});
		
		
		tDorsal.setColumns(10);
		GridBagConstraints gbc_tDorsal = new GridBagConstraints();
		gbc_tDorsal.fill = GridBagConstraints.HORIZONTAL;
		gbc_tDorsal.anchor = GridBagConstraints.NORTH;
		gbc_tDorsal.insets = new Insets(0, 0, 5, 5);
		gbc_tDorsal.gridx = 2;
		gbc_tDorsal.gridy = 1;
		contentPanel.add(tDorsal, gbc_tDorsal);
		
		bEliminar = new JButton("Eliminar");
		bEliminar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				GestorJugadores gj = GestorJugadores.getGestorJugadores();
				gj.eliminarJugador(idEquipo, tNombre.getText(), Integer.parseInt(tDorsal.getText()));
				GestorEquipos ge = GestorEquipos.getGestorEquipos();
				UtilControles.cargarTabla(table, ge.jugadoresEquipo(idEquipo));
			}
		});
		bEliminar.setEnabled(false);
		GridBagConstraints gbc_bEliminar = new GridBagConstraints();
		gbc_bEliminar.fill = GridBagConstraints.HORIZONTAL;
		gbc_bEliminar.anchor = GridBagConstraints.NORTH;
		gbc_bEliminar.insets = new Insets(0, 0, 5, 5);
		gbc_bEliminar.gridx = 2;
		gbc_bEliminar.gridy = 3;
		contentPanel.add(bEliminar, gbc_bEliminar);
		
		bAnadir = new JButton("A\u00F1adir");
		bAnadir.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
					GestorJugadores gj = GestorJugadores.getGestorJugadores();
					gj.anadirJugador(idEquipo, tNombre.getText(), Integer.parseInt(tDorsal.getText()));
					GestorEquipos ge = GestorEquipos.getGestorEquipos();
					UtilControles.cargarTabla(table, ge.jugadoresEquipo(idEquipo));
			}
		});
		bAnadir.setEnabled(false);
		GridBagConstraints gbc_bAnadir = new GridBagConstraints();
		gbc_bAnadir.anchor = GridBagConstraints.NORTHWEST;
		gbc_bAnadir.insets = new Insets(0, 0, 5, 0);
		gbc_bAnadir.gridx = 3;
		gbc_bAnadir.gridy = 3;
		contentPanel.add(bAnadir, gbc_bAnadir);
		
		bModificar = new JButton("Modificar");
		bModificar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
					GestorJugadores gj = GestorJugadores.getGestorJugadores();
					gj.modificarJugador(idEquipo, tNombre.getText(), Integer.parseInt(tDorsal.getText()), table.getModel().getValueAt(table.getSelectedRow(), 0).toString(), Integer.parseInt(table.getModel().getValueAt(table.getSelectedRow(), 1).toString()));
					GestorEquipos ge = GestorEquipos.getGestorEquipos();
					UtilControles.cargarTabla(table, ge.jugadoresEquipo(idEquipo));
			}
		});
		bModificar.setEnabled(false);
		GridBagConstraints gbc_bModificar = new GridBagConstraints();
		gbc_bModificar.fill = GridBagConstraints.HORIZONTAL;
		gbc_bModificar.anchor = GridBagConstraints.NORTH;
		gbc_bModificar.insets = new Insets(0, 0, 0, 5);
		gbc_bModificar.gridx = 2;
		gbc_bModificar.gridy = 4;
		contentPanel.add(bModificar, gbc_bModificar);
		
		bCerrar = new JButton("Cerrar");
		bCerrar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				dispose();
			}
		});
		GridBagConstraints gbc_bCerrar = new GridBagConstraints();
		gbc_bCerrar.anchor = GridBagConstraints.NORTHWEST;
		gbc_bCerrar.gridx = 3;
		gbc_bCerrar.gridy = 4;
		contentPanel.add(bCerrar, gbc_bCerrar);
	}
}
